今天要講的是期貨合約的相關函數。
首先是Contracts函數,就像之前文章裡有使用到的一樣,透過Contracts函數我們就能指定特定的商品,並收取商品報價或下單。
如果想看到所有的商品的話,可以用以下程式碼:
api.Contracts
執行程式後可以發現我們可以收取資料的商品包括指數、個股(包含權證)、期貨、還有選擇權,如果想看特定商品的資料,可以用以下程式碼:
#看特定指數資料(TSE001是加權指數)
contract_indexes = api.Contracts.Indexs.TSE.TSE001
#看特定現股資料(TSE2890是永豐金)
contract_stocks = api.Contracts.Stocks.TSE.TSE2890
#看特定期貨資料(BRF202211是布蘭特原油期貨11月到期契約)
contract_futures = api.Contracts.Futures.BRF.BRF202211
#看特定選擇權資料(CAO202110175C是南亞選擇權)
contract_options = api.Contracts.Options.CAO.CAO202110175C
有了期貨合約之後,我們就可以用之前文章介紹過的subscribe函數收取合約報價資料,例如我要取得台指期9月合約的tick資料,程式碼可以這樣寫:
api.quote.subscribe(
api.Contracts.Futures.TXF.TXF202109, #或寫api.Contracts.Futures.TXF['TXF202109']也可以
quote_type = sj.constant.QuoteType.Tick, # or 'tick'
version = sj.constant.QuoteVersion.v1, # or 'v1'
)
以上就是商品資料的查詢以及在知道商品名後收取合約報價資料的方式。